// 通过 npm 安装 sdk npm：install cos-wx-sdk-v5
// SECRETID 和 SECRETKEY 请登录 https://console.cloud.tencent.com/cam/capi 进行查看和管理
// 建议使用临时密钥调用小程序 SDK，通过临时授权的方式进一步提高 SDK 使用的安全性。
// 申请临时密钥时，请遵循 最小权限指引原则，防止泄露目标存储桶或对象之外的资源。
// 如果您一定要使用永久密钥，建议遵循 最小权限指引原则 对永久密钥的权限范围进行限制。
// 使用临时秘钥请参考文档：https://cloud.tencent.com/document/product/436/11459
// 最小权限原则说明 https://cloud.tencent.com/document/product/436/38618
import siteinfo from "@/siteinfo.js"; // 工具类
import {
	base64Encode
} from "../common.js"; // 工具类
const COS = require('cos-wx-sdk-v5');

const cos = new COS({
	SimpleUploadMethod: 'putObject', // 强烈建议，高级上传、批量上传内部对小文件做简单上传时使用putObject,sdk版本至少需要v1.3.0
	getAuthorization: function(options, callback) {
		// 初始化时不会调用，只有调用 cos 方法（例如 cos.putObject）时才会进入
		// 异步获取临时密钥
		wx.request({
			url: 'https://wechat.qushanggang.cn',
			data: {
				bucket: options.Bucket,
				region: options.Region,
			},
			dataType: 'json',
			success: function(result) {
				const data = result.data;
				const credentials = data && data.credentials;
				if (!data || !credentials) return console.error('credentials invalid');
				callback({
					TmpSecretId: credentials.tmpSecretId,
					TmpSecretKey: credentials.tmpSecretKey,
					// v1.2.0之前版本的 SDK 使用 XCosSecurityToken 而不是 SecurityToken
					SecurityToken: credentials.sessionToken,
					// 建议返回服务器时间作为签名的开始时间，避免用户浏览器本地时间偏差过大导致签名错误
					StartTime: data.startTime, // 时间戳，单位秒，如：1580000000
					ExpiredTime: data.expiredTime, // 时间戳，单位秒，如：1580000900
				});
			}
		});
	}
});

const config = {
	// 需要替换成您自己的存储桶信息
	Bucket: 'pengtou-1322587508', // 存储桶，必须
	Region: 'ap-shanghai', // 存储桶所在地域，必须字段
};

export function postTextAuditing(content) {
	const host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
	const url = 'https://' + host + '/text/auditing';
	console.log(base64Encode(content));
	const body = COS.util.json2xml({
		Request: {
			Input: {
				Content: base64Encode(content), // 需要对原文转为 base64 字符串传入
			},
			Conf: {
				BizType: '',
			}
		}
	});
	cos.request({
			Bucket: config.Bucket,
			Region: config.Region,
			Method: 'POST',
			Url: url,
			Key: '/text/auditing', // * 固定值，必须
			ContentType: 'application/xml', // * 固定值，必须
			Body: body
		},
		function(err, data) {
			if (err) {
				console.log(err);
				// 处理请求出错
				return err
			} else {
				console.log(data);
				// 处理请求成功
				return data
			}
		});
}
// postTextAuditing(content);